Client computers execute application programs that provide various functionality. However, services of the application programs may be provided from a network that the client computer has access to. Decoupling the services from the client computer and moving them to the network allows these services to be updated and controlled without interacting with the client computer that will ultimately use the services. However, the client computer must be directed to a network location where a particular service can be accessed.
From a user's perspective, the direction of the client computer may be transparent. For example, the user may click a graphical user interface control such as a button or menu item to access a network hosted service, such as a help menu. However, the application on the computer must target a specific location to access the requested service upon receiving the selection from the user.
The network location for a network hosted service may change from time to time. For example, during application development and subsequent beta testing, the network hosted service may be provided from one network location such as a uniform resource location (“URL”) path to a beta server. However, upon releasing the application program, the network hosted services for the program may be provided from a different location, such as a URL path to a production server, such that the selections for a service in an application must target a new network location than was done during the beta testing. Furthermore, the network location for the services may change one or more times, such as to URLs of different production servers, after the application program that utilizes the network services has shipped.
The application of the client computer must be able to access the new network locations as they change with time. To accomplish this, the application may be setup to access a configuration server at a first network location that specifies the network location where a service can be accessed in a file, typically in the extensible markup language (“XML”). The network locations specified by the configuration server can be updated with the new network locations as they occur. Thus, the client computer can then learn to access the services at the new network locations by accessing the configuration server at the known network location.
However, it may often be desirable to direct the client computer to a location other than that specified by the configuration server. For example, a client computer may be a node of a corporate network that provides hosted services in place of hosted services located through the configuration server. Furthermore, certain applications of the client computer may require access to the hosted services located through the configuration server while other applications should access hosted services from another location. The same may be true on a user basis, where services requested by one user through an application should come from the locations specified in the configuration server while services requested by another user through the application should come from different locations than those specified in the configuration server.